﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Titulo.Titulo;

namespace Sinacor.UI.Bovespa.Ordens.Communication.Translator.ModelToDataContract
{
    public static class Titulo
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="from"></param>
        /// <returns></returns>
        public static ConsultarTituloCodigoRequest ToConsultarTituloCodigoRequest(Model.Titulo from)
        {
            Bovespa.Titulo.Titulo.ConsultarTituloCodigoRequest to = new Bovespa.Titulo.Titulo.ConsultarTituloCodigoRequest();

            to.CodigoNegociacao = from.Codigo;
            to.DataOrdem = from.DataPregao;            

            return to;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="tipoMercado"></param>
        /// <returns></returns>
        public static Bovespa.Titulo.Titulo.TipoMercado? TranslateTipoMercadoModelToDataContractTitulo(Model.Enum.TipoMercado tipoMercado)
        {
            switch (tipoMercado)
            {
                case Model.Enum.TipoMercado.BOX:
                    return Bovespa.Titulo.Titulo.TipoMercado.BOX;
                case Model.Enum.TipoMercado.Estruturado:
                    return Bovespa.Titulo.Titulo.TipoMercado.Estruturado;
                case Model.Enum.TipoMercado.ExercicioOpcaoCompra:
                    return Bovespa.Titulo.Titulo.TipoMercado.ExercicioOpcaoCompra;
                case Model.Enum.TipoMercado.ExercicioOpcaoVenda:
                    return Bovespa.Titulo.Titulo.TipoMercado.ExercicioOpcaoVenda;
                case Model.Enum.TipoMercado.Fracionario:
                    return Bovespa.Titulo.Titulo.TipoMercado.Fracionario;
                case Model.Enum.TipoMercado.Futuro:
                    return Bovespa.Titulo.Titulo.TipoMercado.Futuro;
                case Model.Enum.TipoMercado.Leilao:
                    return Bovespa.Titulo.Titulo.TipoMercado.Leilao;
                case Model.Enum.TipoMercado.LeilaoNaoCotados:
                    return Bovespa.Titulo.Titulo.TipoMercado.LeilaoNaoCotados;
                case Model.Enum.TipoMercado.OpcaoCompra:
                    return Bovespa.Titulo.Titulo.TipoMercado.OpcaoCompra;
                case Model.Enum.TipoMercado.OpcaoVenda:
                    return Bovespa.Titulo.Titulo.TipoMercado.OpcaoVenda;
                case Model.Enum.TipoMercado.Termo:
                    return Bovespa.Titulo.Titulo.TipoMercado.Termo;
                case Model.Enum.TipoMercado.VencimentoFuturo:
                    return Bovespa.Titulo.Titulo.TipoMercado.VencimentoFuturo;
                case Model.Enum.TipoMercado.Vista:
                    return Bovespa.Titulo.Titulo.TipoMercado.Vista;
                case Model.Enum.TipoMercado.IntegralizacaoResgateCotas:
                    return Bovespa.Titulo.Titulo.TipoMercado.IntegralizacaoResgateCotas;
                case Model.Enum.TipoMercado.CotasETF:
                    return Bovespa.Titulo.Titulo.TipoMercado.CotasETF;
                default:
                    return null;
            }
        }
    }
}
